<?php
/**
 * 个人中心Service
 * Date: 2025/09/08
 */

namespace App\Services\Admin;

use App\Models\AdminModel;
use App\Services\BaseService;

class MyService extends BaseService
{
    /**
     * 我的信息
     * @date 2025/09/08
     * @param int $id 管理员主键ID
     * @return \Illuminate\Http\JsonResponse
     */
    public function info($id)
    {
        return $this->success($this->getMyInfo($id));
    }

    /**
     * 修改信息
     * @date 2025/09/08
     * @param array $params 请求参数
     * @return \Illuminate\Http\JsonResponse
     */
    public function update($params)
    {
        // 管理员更新
        AdminModel::query()->where('id', $params['id'])->update([
            'avatar' => $params['avatar'] ?? '',
            'name' => $params['name'] ?? '',
            'email' => $params['email'] ?? '',
            'phone' => $params['phone'] ?? ''
        ]);
        return $this->success();
    }

    /**
     * 修改密码
     * @date 2025/09/08
     * @param array $params 请求参数
     * @return \Illuminate\Http\JsonResponse
     */
    public function password($params)
    {
        // 管理员密码检测
        if (!password_verify($params['password'], $params['old_password'])) {
            return $this->failed('密码错误');
        }

        // 修改密码
        AdminModel::query()->where('id', $params['id'])->update([
            'password' => password_hash($params['new_password'], PASSWORD_BCRYPT),
        ]);
        return $this->success();
    }

    /**
     * 查询我的信息
     * @date 2025/09/15
     * @param int $id 管理员主键ID
     * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model|object|null
     */
    public function getMyInfo($id)
    {
        return AdminModel::query()
            ->select(['id', 'account', 'avatar', 'name', 'email', 'phone', 'created_at'])
            ->where('id', $id)
            ->first();
    }
}
